import configparser

import sqlalchemy
from sqlalchemy import create_engine, text


def connect():
    """
    创建数据库引擎对象并返回连接对象

    :return: 新创建的数据库连接对象
    """


    # 获取数据库连接参数
    host = '127.0.0.1'
    user = 'root'
    passwd = 'Lx0101011.'
    port = '6124'
    db = 'img'
    charset = 'utf8'

    # 创建数据库引擎对象
    engine = create_engine(
        f'mysql+pymysql://{user}:{passwd}@{host}:{port}/?charset={charset}',
        poolclass=sqlalchemy.pool.NullPool
    )

    # 连接到数据库，如果需要创建数据库，这里先用默认的数据库（如mysql）连接
    conn = engine.connect()

    # 如果不存在数据库db_quant则创建，这里确保使用正确的连接执行SQL
    conn.execute(text(f"CREATE DATABASE IF NOT EXISTS `{db}`"))

    # 关闭默认数据库的连接
    conn.close()

    # 创建连接数据库db_quant的引擎对象
    db_engine = create_engine(
        f'mysql+pymysql://{user}:{passwd}@{host}:{port}/{db}?charset=utf8',
        poolclass=sqlalchemy.pool.NullPool
    )

    # 使用新数据库的连接执行操作
    conn = db_engine.connect()

    return conn


if __name__ == '__main__':
    connection = connect()
    # 使用连接对象执行SQL查询
    version = connection.execute(text("SELECT VERSION()")).fetchone()
    print(version)
    # 记得关闭连接
    connection.close()
